Computer networks typically provide physical interconnections between different computers to allow for the convenient exchange of programs and data. For example, a network typically includes a plurality of connectivity devices, such as switches and routers, interconnecting each user computer connected to such a network. In general, the connectivity devices maintain routing information about the computers and other connectivity devices, and perform routing decisions concerning message traffic passed between the computers.
Each connectivity device, or router, corresponds to a network routing prefix (prefix) indicative of the other computers to which it has direct or indirect access. Therefore, data routed from one computer to another can follow a path through the network defined by the routers between the two computers. In this manner, the aggregation of routers in the network defines a set of interconnections between the various computers connected to the network.
In terms of a topological representation, therefore, such a network may be conceived as an interconnection of multiple computer nodes. Such a representation defines one or more paths between each of the computers connected to the network. The routers, therefore, define nodes in a network, and data travels between the nodes in a series of so-called “hops” over the network. Since each router is typically connected to multiple other routers, there may be multiple potential alternative paths and hops between given computers.
Typically, routing information is employed in a routing table in each router node. A router node uses the routing table to determine a path to a destination computer or another network. For example, the router makes a routing decision, using the routing table, to identify a next “hop,” or next router, to send the data in order for the data such as a network data packet to ultimately reach the destination computer. However, network failures may occur in router nodes and links between the routers. In such a case, one computer coupled to communicate over the network may not be able to communicate with another computer coupled to communicate over the network at least for some period of time.
In many network applications, it is quite useful to know the time it takes to transmit messages or data packets to different nodes in a network. At a minimum, such a metric reflects the efficiency of the network. For example, a measurement of relatively low transmission times to convey messages from one network node to another network node likely indicates that a network is operating more efficiently compared to other occasion when alternative measurements indicate relatively high transmission times to convey messages.
One conventional method of determining message transit times is to precisely calculate such message transit times based on parameters such as queue delays, hop delays, path efficiency, network topology, etc. That is, one may add up all of the possible delays between the network nodes and links to identify network message transit times.